Conventionally, networks are deployed with various network elements or equivalents forming physical nodes that communicate to one another. There can be various different layers and types of networks all part of an operator's overall network. For example, different layers can include, without limitation, optical (e.g., campus, metro, regional, long-haul, submarine, etc.), access (e.g., digital subscriber loop, passive optical, wireless, cable, etc.), wireless (e.g., cellular, wireless local area network, etc.), data (e.g., Ethernet, Internet Protocol, etc.), and the like. From an operational perspective, the operator manages the network and/or the individual network elements via a network management system (NMS), an element management system (EMS), a craft interface (CI), an Operations Support System (OSS), and the like. For illustration purposes, the aforementioned systems can be generally referred to as network management systems. Network management may include a combination of systems in a distributed fashion. Further, a hierarchical fashion can be used with a so-called “manager of managers” integrating lower level systems. Even singularly deployed systems can be viewed as a distributed system based on virtualization whereby numerous processes are implemented separately on a single system in a virtualized manner.
As networks grow and become more complex, network management systems receive a lot of data such as network events, traps, alarms, etc. each of which can be generally referred to as a message that has to be processed. That is, the network management systems have a tremendous amount of data that has to continually be processed with many concurrencies ongoing simultaneously. At present, metric collections are performed separately for synchronous and asynchronous interactions. The synchronous collection is optionally stored in a database. The asynchronous metrics are limited to entry and exit timestamps and currently exported in a comma-separated text format. There is no way to correlate between the two data sets which is critical for performance analysis. In an asynchronous message-based software system such as the network management systems, each message is processed independently of other system components. However, messages processed by one system component are typically published again for a different component to process. This pattern can be repeated many times causing a nested hierarchy of message processing. With this loose coupling, it is difficult to determine performance bottlenecks and to determine the interdependencies between components of the network management systems. This is important as the complexity of the network management systems and the underlying networks has grown making real-world troubleshooting and performance optimization critical.